查看原文
其他

深度生成模型及其在时间序列异常检测上的应用

刘硕 狗熊会 2023-08-15
点击“蓝字”关注我们吧!



刘硕,中国人民大学统计学专业在读博士生,主要研究领域包括异常检测,分位回归,深度学习等。




今天要和大家分享的是一种较为流行的深度生成模型——变分自编码器(Variational Auto-Encoder, VAE),及其在时间序列异常检测上的应用。我们将结合一篇2020年发表在人工智能领域顶刊IEEE Transactions on Neural Networks and Learning Systems上的文章Anomaly Detection of Time Series With Smoothness-Inducing Sequential Variational Auto-Encoder进行介绍并在此基础上进行一定的扩充[1]。

原文链接:https://ieeexplore.ieee.org/document/9064715

一、背景介绍

时间序列异常检测是一个重要且极具挑战性的问题,在过去几十年间,已经在各个领域被广泛研究,包括智能交通[2]、医疗保健[3]、KPI监控[4]、web入侵检测[5]、环境监测[6]、故障诊断[7]和恶意软件检测[8]。

对于异常的定义,有诸多学者从不同的角度进行了界定,但最为经典也被绝大多数学者认可的,是1980年Hawkins做出的定义[9]:

“An outlier is an observation which deviates so much from the other observations as to arouse suspicions that it was generated by a different mechanism.”

也就是说,异常样本是那些与其他数据存在着极大不同的数据点,有可能是由某种错误引起的,也有可能是由一种新的、未知的或潜在的机制引起的。

对于时间序列异常,一般情况下可以分为两种情形:点异常与子序列异常。点异常是指序列中在时刻的观测被视为异常;子序列异常是指部分序列或整条序列为异常。图1给出了两种异常的实际例子[10]。

图 1 点异常与子序列异常

深度生成模型是深度学习领域中一个非常具有挑战性且极具吸引力的研究方向,它可以在没有目标类标签信息的条件下来学习目标类的特征,并从网络中抽样来生成新的目标类样本。学者们已经从不同的角度设计了多种多样的深度生成模型,譬如较为经典的深度信念网络(Deep Belief Network, DBN)[11]、神经自回归网络(Neural Auto-Regressive Network)[12]、深度玻尔兹曼机(Deep Boltzmann Machine, DBM)[13],目前在学界中被广泛研究的两类主流深度生成模型——生成式对抗网络(Generative Adversarial Network, GAN)[14]与变分自编码器(Variational Auto-Encoder, VAE)[15],以及近几年新出现的流模型(Flow-based Model)[16]与扩散模型(Diffusion Model)[17]。

深度生成模型在学习时间序列的隐表示和建模复杂依赖关系方面已经被证实了其有效性。在这篇文章中,主要使用和改进的生成模型为VAE。但是,深度生成模型极易受到异常点的影响,这对于在无监督情形下的异常检测任务来说,是具有一定劣势的。

二、变分自编码器

VAE是由Kingma和Welling[15]于2013年基于自编码器(Auto-Encoder, AE)提出的一种具有生成能力的深度学习模型,是一种全新的深度生成模型。VAE是一种成功地将近似推断方法引入到深度学习研究中的方法,是一种能够利用变分推断(Variational Inference, VI)的有向图模型,可以纯粹地利用梯度下降等基于梯度的优化方法进行训练的模型。

一般来说,VAE与传统的自编码器类似,其网络结构中会存在两个具有对称结构的子网络,即编码器(Encode, )与解码器(Decoder, )。编码器能够完成从样本空间到隐空间的映射,用于获得样本的表示;解码器能够完成从隐空间到样本空间的映射,用于获得样本的重构样本。

当利用VAE生成样本时,一般先从一个先验分布中采样,然后再从一个条件分布中采样。但是,在训练VAE时,一般要利用后验分布获得。众所周知的是,VAE与其他的隐变量模型不同,其隐变量是连续高维的,这就造成后验分布是不易计算的。此时,就需要用一个其他分布来近似后验分布来获得。我们能够认为为解码器,为编码器

训练VAE的关键思想是要去最大化一个与样本点相关联的证据下界(Evidence Lower Bound, ELBO)。对于获得ELBO,可以将似然函数进行进一步的改写(为了简化推导过程,一般只考虑一个样本点):

其中,即为ELBO,为Kullback–Leibler 散度(KL散度)。

利用KL散度不小于0的性质,并进行进一步改写能够得知:

的进一步改写能够得到VAE的损失函数:

损失函数中的右边第一项可以看作是一个重构损失,通常情况下选用MSE损失函数,而右边第二项可以看作是正则项,这个正则项的目的是为了使后验分布逼近先验分布。我们能够通过梯度下降法来求解最优的,但是当求解关于的梯度时会出现一些问题。利用蒙特卡洛法估计梯度值时为:

需要注意的是,若当取到使值很小的时,会具有较大的方差,这样会造成此梯度十分不稳定。因此,需要找到一种方法将其方差减小。在变分推断中,一种较为有效的方法是利用重参数化技巧(Reparameterization Trick)。重参数化技巧的核心思想是通过一个变换将一个变量的随机性转移到一个具有确定性分布的随机变量上:

在VAE中,一般假设,所利用的变换为。那么,VAE的损失函数可以改写为:

由于在实际训练过程中,可以对先验分布与后验分布的分布形式进行事先假定,一般来说,可以假设先验分布服从标准正态分布,后验分布服从一般正态分布。那么,对于损失函数中的KL散度项,我们能够求得其在高斯意义下的解:

其中,的维数。

三、时间序列异常检测模型SISVAE

在此部分中我们将会对作者提出的平滑诱导序贯变分自编码器(Smoothness-Inducing Sequential Variational Auto-Encoder, SISVAE)进行详细介绍。

我们先对无监督时间序列异常检测问题进行定义。

考虑一组包含异常的时间序列数据,其中每个时间点的数据的建模为

其中,是真实信号;是非平稳噪声;是一个的异常指示矩阵,当为异常观测时,为异常矩阵。我们的目标是,恢复真实信号,并检测出异常点

接下来,我们需要先对SISVAE的整体流程有一个大致了解,如图2所示。

图 2 SISVAE的整体流程

图2中的(a)给出的是一个四维时间序列数据,其中的蓝色点是观测数据,黑色实线是真实信号,我们的目的就是要去恢复真实信号,并且从观测数据中找出异常点。图2中的(b)是利用SISVAE给出的密度估计情况,也就是对于真实信号恢复的情况。图2中的(c)是利用阈值方法进行异常值判断。

在对SISVAE的整体流程有了初步了解后,我们先来探究其中的序贯VAE(SAE)部分。SAE包含两个部分:生成模型与推断模型。对于生成模型,设定其为:

其中,是给定先前数据与隐藏状态下的数据点的条件似然。我们记为观测数据重构分布的随机变量,那么有

其中,为解码器,为隐变量的特征提取器。对于,是隐藏状态的先验

生成模型的示意图见图3

图 3 生成模型

对于推断模型,我们使用变分推断来学习在给定数据的条件下隐变量的近似后验,这意味着我们需要构造一个由参数化的近似分布。我们构建分布通过

隐变量的近似后验依赖于

推断模型的示意图见图4

图 4 推断模型

在介绍完模型后,可以在传统VAE损失函数的基础之上给出SAE的损失函数:

其中上式的第一部分是推断损失,第二部分是重构损失。

假设是一个异常,那么它的重构分布将是。这时,生成模型尝试去重构,而不是真实信号,否则的话重构误差会很高,但是这对于异常检测任务是不利的。为了从异常数据中减小损失,模型应当学习到一个有偏的,或者是一个高估的。作者考虑将平滑先验引入到序贯VAE中,并以一种概率形式与序贯VAE的损失函数进行结合。

对于在时间序列中连续的两个时间点,设的重构分布。设为两个分布的距离测度,那么平滑损失定义为

假设重构分布为正态分布,并选取 KL 散度为距离测度,得到了最终的损失函数:

下面是模型训练的伪代码:

对于利用训练好的模型进行异常检测,作者给出了两种策略,一种是直接利用类似于其他深度生成模型异常检测算法的重构方法进行异常检测,另一种是利用VAE特有的重构概率的方法进行异常检测,对于后一种的算法伪代码如下:

四、论文实验

在本部中,我们简单地介绍一小部分论文中的实验,如果有兴趣可以在原文中了解更多实验内容。

表 1 精度比较

上表给出的是作者在Yahoo’s S5 Webscope 数据集的四个子数据集以及Open µPMU Power Network数据集上的精度比较结果,可以看出作者提出的SISVAE模型在绝大多数数据集上的表现是优于baseline的。

图 5 可视化结果展示

图5给出的一个可视化结果,可以很直观地观察到SISVAE相较于baseline是可以恢复真实信号的,所以它能够更加精准地检测出异常点。

五、结论与展望

本次所介绍的这篇论文针对多维时间序列的稳健估计与异常检测问题进行了深入研究,提出了一种新的基于深度生成模型的方法SISVAE;同时,为了从受(异常)污染的时间序列数据中捕获正常模式,提出了一种新的变分平滑正则器,通过对生成模型的非平滑输出进行惩罚,来提供鲁棒性;此外,还讨论了两种异常检测决策准则:重构误差与重构概率。

作者认为可以将正态分布替换为一些重尾分布,例如t分布,来作为生成模型的输出;此外,我们认为对于基于深度生成模型的时间序列异常检测研究,还应当深入探索对于真实信号与异常信号的同时估计问题,以及探索隐空间对于正常模式捕获的影响问题。

参考文献

[1] Li L, Yan J, Wang H, et al. Anomaly detection of time series with smoothness-inducing sequential variational auto-encoder[J]. IEEE transactions on neural networks and learning systems, 2020, 32(3): 1177-1191.

[2] Li X, Li Z, Han J, et al. Temporal outlier detection in vehicle traffic data[C]//2009 IEEE 25th International Conference on Data Engineering. IEEE, 2009: 1319-1322.

[3] Hauskrecht M, Batal I, Valko M, et al. Outlier detection for patient monitoring and alerting[J]. Journal of biomedical informatics, 2013, 46(1): 47-55.

[4] Xu H, Chen W, Zhao N, et al. Unsupervised anomaly detection via variational auto-encoder for seasonal kpis in web applications[C]//Proceedings of the 2018 world wide web conference. 2018: 187-196.

[5] Jyothsna V, Prasad R, Prasad K M. A review of anomaly based intrusion detection systems[J]. International Journal of Computer Applications, 2011, 28(7): 26-35.

[6] Hill D J, Minsker B S. Anomaly detection in streaming environmental sensor data: A data-driven modeling approach[J]. Environmental Modelling & Software, 2010, 25(9): 1014-1022.

[7] Yan J C, Tian C H, Huang J, et al. Incremental dictionary learning for fault detection with applications to oil pipeline leakage detection[J]. Electronics letters, 2011, 47(21): 1198-1199.

[8] Kim J Y, Bu S J, Cho S B. Zero-day malware detection using transferred generative adversarial networks based on deep autoencoders[J]. Information Sciences, 2018, 460: 83-102.

[9] Hawkins D M. Identification of outliers[M]. London: Chapman and Hall, 1980.

[10] Schmidl S, Wenig P, Papenbrock T. Anomaly detection in time series: a comprehensive evaluation[J]. Proceedings of the VLDB Endowment, 2022, 15(9): 1779-1797.

[11] Hinton G E, Osindero S, Teh Y W. A fast learning algorithm for deep belief nets[J]. Neural computation, 2006, 18(7): 1527-1554.

[12] Van den Oord A, Kalchbrenner N, Espeholt L, et al. Conditional image generation with pixelcnn decoders[J]. Advances in neural information processing systems, 2016, 29.

[13] Salakhutdinov R, Hinton G. Deep boltzmann machines[C]//Artificial intelligence and statistics. PMLR, 2009: 448-455.

[14] Goodfellow I J, Pouget-Abadie J, Mirza M, et al. Generative adversarial nets[C]//Proceedings of the 27th International Conference on Neural Information Processing Systems-Volume 2. 2014: 2672-2680.

[15] Kingma D P, Welling M. Auto-encoding variational bayes[J]. arXiv preprint arXiv:1312.6114, 2013.

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存